const movieCp=require('child_process')
const {resolve}=require('path')
const mongoose=require('mongoose');
const Movies=mongoose.model('Movies')


;(async ()=>{
    // const script=resolve(__dirname,'./puppet-list') //获取要运行js模块路径
    const script=resolve(__dirname,'./puppet-list')
    //下面句fork方法可以生成一个子进程，参数一只要把script脚本路径放进去，就生成
    const child = movieCp.fork(script,[])
    let invoked=false      //表示开关，可以判断是否打开了
    child.on('error',err=>{   //监听子进程发生错误
        if(invoked)return
        invoked=true
        console.log(err)
    });
    child.on('exit',code=>{  //监听子进程退出
        if(invoked)return
        invoked=true
        //下面句如果退出返回code码是0 则正常完成退出返回空错误。否则非正常退出返回错误码
        let err=code ===0?null:new Error('exit code'+code)
        console.log(err) //打印错误码
    });
    child.on('message',data=>{  //子进程运行js脚本接收结果数据，脚本需要返回一个数据出来
        let result=data.result;
        console.log(result)
        result.forEach(async (item) => {
            let movie=await Movies.findOne({dyId:item.dyId})
          if(movie) {console.log('已有',movie) }else{
              let Blog=new Movies(item);
              Blog.save(err=>{
                  if(err)throw err
              })
          }

        })
    })
})()